
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Tathata.Common.BLL.Entities;
using Tathata.Common.BLL.Managers;
using Tathata.Common.Utils;
using Tathata.Common.BLL.EntityCollections;

namespace Tathata.Web.Administration
{
    public partial class Administration_AffiliateDetails : BaseNopAdministrationPage
    {
        private void BindData()
        {
            Affiliate affiliate = AffiliateManager.GetByAffiliateID(this.AffiliateID);
            if (affiliate != null)
            {
                this.txtFirstName.Text = affiliate.FirstName;
                this.txtLastName.Text = affiliate.LastName;
                this.txtMiddleName.Text = affiliate.MiddleName;
                this.txtPhoneNumber.Text = affiliate.PhoneNumber;
                this.txtEmail.Text = affiliate.Email;
                this.txtFaxNumber.Text = affiliate.FaxNumber;
                this.txtCompany.Text = affiliate.Company;
                this.txtAddress1.Text = affiliate.Address1;
                this.txtAddress2.Text = affiliate.Address2;
                this.txtCity.Text = affiliate.City;
                this.txtStateProvince.Text = affiliate.StateProvince;
                this.txtZipPostalCode.Text = affiliate.ZipPostalCode;
                CommonHelper.SelectListItem(this.ddlCountry, affiliate.CountryID);
                this.cbActive.Checked = affiliate.Active;

                gvAffiliateCustomers.DataSource = CustomerManager.GetByAffiliateID(this.AffiliateID);
                gvAffiliateCustomers.DataBind();

            }
            else
                Response.Redirect("Affiliates.aspx");
        }

        private void FillDropDowns()
        {
            this.ddlCountry.Items.Clear();
            CountryCollection countryCollection = CountryManager.GetAllCountriesForRegistration();
            foreach (Country country in countryCollection)
            {
                ListItem ddlCountryItem2 = new ListItem(country.Name, country.CountryID.ToString());
                this.ddlCountry.Items.Add(ddlCountryItem2);
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                this.FillDropDowns();
                this.BindData();
            }
        }

        protected void SaveButton_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    Affiliate affiliate = AffiliateManager.GetByAffiliateID(this.AffiliateID);

                    if (affiliate != null)
                    {
                        affiliate = AffiliateManager.UpdateAffiliate(affiliate.AffiliateID, txtFirstName.Text, txtLastName.Text, txtMiddleName.Text,
                       txtPhoneNumber.Text, txtEmail.Text, txtFaxNumber.Text, txtCompany.Text,
                       txtAddress1.Text, txtAddress2.Text, txtCity.Text, txtStateProvince.Text, txtZipPostalCode.Text,
                           int.Parse(this.ddlCountry.SelectedItem.Value), affiliate.Deleted, cbActive.Checked);
                        Response.Redirect("AffiliateDetails.aspx?AffiliateID=" + affiliate.AffiliateID.ToString());
                    }
                    else
                        Response.Redirect("Affiliates.aspx");
                }
                catch (Exception exc)
                {
                    ProcessException(exc);
                }
            }
        }

        protected void DeleteButton_Click(object sender, EventArgs e)
        {
            try
            {
                AffiliateManager.MarkAffiliateAsDeleted(this.AffiliateID);
                Response.Redirect("Affiliates.aspx");
            }
            catch (Exception exc)
            {
                ProcessException(exc);
            }
        }

        public int AffiliateID
        {
            get
            {
                return CommonHelper.QueryStringInt("AffiliateID");
            }
        }
    }
}
